package com.cloud.base.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloud.api.domain.sys.CheckName;
import com.cloud.api.domain.sys.SysDept;
import com.cloud.api.domain.sys.SysDeptDto;
import com.cloud.api.domain.sys.SysDeptQuery;
import com.cloud.mybatis.domain.TableDataInfo;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 部门表 服务类
 * </p>
 *
 * @author haohaibo
 * @since 2023-08-01
 */
public interface ISysDeptService extends IService<SysDept> {

    public TableDataInfo<SysDeptDto> selectDeptList(SysDeptQuery para);

    public List<SysDeptDto> getDeptListEnable();
    public boolean checkExist(CheckName para);
    public List<SysDept> selectServiceByAuth(String type);

    public TableDataInfo<SysDept> getDeptListByCondition(SysDeptQuery para);

    public void insertOrUpdate(SysDept para);

    public void importDeptList(String parentId,MultipartFile file) throws IOException;

    public void downloadTemplate(HttpServletResponse response) throws IOException;

    public void deleteById(String deptId);

    public void deleteByIds(String deptIds);

    public void deleteByIdForExtend(String deptId);

//    public List<SysDept> selectAllDeptAndFollow();

    public List<SysDeptDto> selectServiceByAuthTree();

}